package com.qixiaobao.nondirect.invoice.domain.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description 非直投发票管理 - 开票账单信息VO
 * @Author yangxm
 * @Date 2025/7/4 16:53
 */
@Data
public class NonDirectBillVO implements Serializable {
    private static final long serialVersionUID = 1129020425929813363L;

    private Long billId;
    private Long billMergeId;
    /** 税号 */
    private String taxNum;
    /** 公司注册地址 */
    private String companyAddress;
    /** 公司注册电话 */
    private String companyPhone;
    /** 开户银行 */
    private String bankDeposit;
    /** 银行账号 */
    private String bankNum;
    /** 供应商id */
    private Long supplyId;
    /** 供应商名称 */
    private String supplyName;
    /** 供应商简称 */
    private String supplyShortName;
    /** 开票状态 */
    private String billStatus;
    private String billStatusVal;
    /** 实际付款单位 */
    private Long actualPayCompanyId;
    private String actualPayCompanyName;
    /** 开票金额 */
    private BigDecimal insureFeeTotal;
    /** 发票类型 */
    private String invoiceType;
    private String invoiceTypeVal;
    /** 实际开票金额（发票凭证金额） */
    private BigDecimal invoiceTotalAmount;
    /** 发票差额 （实际开票金额-发票金额）*/
    private BigDecimal invoiceBalance;
    /** 税率 */
    private String taxRate;
    /** 审核状态 */
    private String auditStatus;
    private String auditStatusVal;
    /** 审核人 */
    private String auditBy;
    /** 审核时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date auditTime;
    /** 审核备注 */
    private String auditRemark;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date createTime;
    /** 修改时间 */
    @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss")
    private Date updateTime;
    /** 备注 */
    private String remark;
    /** 备注操作人 */
    private String remarkOperator;
    /** 备注时间 */
    private Date remarkTime;

    /** 发票号码，多个聚合 */
    private String invoiceNums;
    /** 开票时间，多个聚合 */
    private String invoiceDates;
    /** 开票月份，多个聚合 */
    private String invoiceYearMonth;
    /** 发票金额，多个聚合*/
    private String invoiceMoneys;
    /** 最大发票金额对应的发票时间 */
    @JsonFormat(pattern = "yyyy/MM/dd")
    private Date maxInvoiceMoneyInvoiceDate;

}
